Users use client devices such as mobile phones and tablet computers to consume many types of digital content. For example, the content can include news, electronic book, video, and audio content. The client devices often store the content locally on the devices, so that the content is readily available to the users.
Some types of content, such as news content, change frequently. Therefore, the client devices frequently update the content stored on the client devices in order to provide the users with fresh content when the users use the client devices. The client devices update the content by fetching the content from one or more content servers. For example, the client devices may be configured to fetch updated content from a content server on a set schedule, such as every four hours.
However, it is difficult for a content server to support content updating on a mass scale. There may be millions of client devices requesting updated content from a content server. Supporting this many client devices requires a large amount of server and network resources. Moreover, it is difficult to scale up the available resources as the number of clients, and attendant update requests, increase. Updating in this manner can also be wasteful because not every client device needs an update on the set schedule. A client device might not need a content update if the user is unlikely to consume the content in the near term. For example, it might not be necessary to update the content in the middle of the night if the user is asleep.